MapR~技術とかロードマップとか黒幕の本社CTOがいろいろ説明するわけよ。に参加してきました #maprcto
11/12(火)にMapR~技術とかロードマップとか黒幕の本社CTOがいろいろ説明するわけよ。に参加してきたので、その参加レポートを書きます。以下のように前半はスライドを元にMapRの説明、後半は質疑応答という構成でした。
- 18:15-19:00 MapR アーキテクチャ概要
- 19:00-20:00 質疑応答
一応、日本語による質問は可能だったんですが、質問者も半分ぐらいは英語で質問していことに加え、内容自体も高度であったため3割程度の理解度だったりします。ですので、その辺りは察していただけると助かります。なお、Srivasさんの英語は日本人向けにかなり聞きやすく話していてくれて気はします。恐らく。。
MapR アーキテクチャ概要
MapRのCTO兼FounderであるM. C. SrivasさんによるMapRの説明です。当然ですが英語です。ただし、スライドは翻訳されていたのでそこを手掛かりに話を聞いていました。なお、依頼したら速攻で公開してくれた@nagixさんありがとうございます!(ちなみに、翻訳前のスライドはこちらだと思われます。)
ということで、以下メモになります。
- Srivasさんの自己紹介。GoogleでMapRedudeやBigTableの開発をしていたとのこと。
- MapRの歴史。最近ではエンタープライズ(リテール)向けで2,500ノード!のクラスタが存在するとのこと。
-
MapRディストーションの紹介。
- Impalaも動くと書いてあって驚きました。
- クラウドで採用されている。AWS、Google。あとopenstackにも対応とありました。
- HDFSが信頼性を高めるために書き込みをクローズするまでは読み取れない仕様にしたが、NFSにはクローズが存在しないためHDFSではNFSに適用できない。
- MapRではデータをコンテナという破片に分解して全ノードに配備することでノード障害時の再同期の速度を全ノード数-1倍に早めている。そのため、クラスタが100台あれば99倍の速度でre-syncできる。
- 同期Write(Strong Consistency, not Eventually)
- データはChain型にレプリケーション。
-
ランダムWrite!
- これ、ファイル単位でということですよね。HDFSの感覚からするとすごいですね。。
- 実際のファイルはチャンクという単位で管理し、更に複数のチャンクをコンテナに入れている。
- 書き込みはファイル単位だが再同期はコンテナ単位になるため早い。
- MapRはそもそもNameNodeが存在しない。大量のファイルを作成し続けることができる。
- MapRと他のディストリビューションのファイル書き込みの比較結果。他のディストリビューションで急に性能が落ちたのはGCが原因。
- MapRは書き込み性能が高いので直接WebサーバーなどからNFS経由でファイルを書き込むことができる。コネクタのような別途ファイルをコピーするという仕組みが不要になる。
- M7 Tableはコンパクションが存在しない。
- M7とHBaseの比較結果。スループットもM7が高いが、何よりもコンパクションが存在しないためlatencyが発生しない。
- Hadoopの全コンポーネントをHA化する。ジョブの中断/再開が可能。
- MapR上のMapReduceは早い。
質疑応答
Q. クラウド環境だとMapRのファイルシステムを活かせないのでは?EMRはジョブが終わるとデータが消えるわけで。
A. HDFSよりは使いやすいので使っているお客さんもいる。
Q. ResourceManagerはどうやってHA?
A. CLDBとWARDENで行っている。(ちょっと自信ないです)
-
CLDBはContainer Manager。
- CLDBの解説はインサイド MapR (1) (Hadoop アドベントカレンダー 2011 16日目) - nagixが良さげでした。
- WARDENはMapR特有のプロセスで各ノード上で起動され、各サービスのプロセスを監視している。プロセスが停止した際は別のノードで処理を引き継ぐように動作する。
Q. JobTrackerに手を入れている?
A. 入れているわけではなくて元々HA機能はあるが、バグもあるし速度の問題もあって誰も使っていない。MapRでは高速なこともあり、そこを直して利用している。
Q. YARN対応版はいつ出す?
A. YARNには不安な点がありまだ出していない。
- まずResourceManagerにリソースリークが存在する。FailOver時にApplicationMasterからのreturnメッセージを受け損ねると、そのリソースが開放されない状態になってしまう。
- SLOOOOOOW。ジョブを起動するまでのステップが増えていて遅くなる。YARNを使うとすれば数千台で数千ジョブぐらいないと意味がない。
Q. なぜM7だとコンパクションが必要ない?
A. MapRはランダムアクセス可能だから。(かなり自信がないです。ここは別のスライドでMapR M7の構造について説明してくれていたのですが、ほんとついて行けなかったです。。)
- HBaseのHFileはスキーマレスなこともあり、1レコードのために全てのHFileを読み込む必要がある。
- M7の場合はMapRなのでランダムアクセス可能なため、そのレコードに必要な箇所だけ読めば済む。
Q. 今後のロードマップは?
A. セキュリティ。(ここも、色々と細かく説明していたと思うのですが、気力が尽きてました。。)
感想など
ほんと濃かったです。色々と細かな部分で理解できなかったのですが、今後調査していく上での足掛かりは得られたので、引き続き調査していければと考えています。